// Side Nav
//
// A vertical list of navigational links, typically used on the left side of a page.

.SideNav {
  background-color: var(--bgColor-muted, var(--color-canvas-subtle));
}

.SideNav-item {
  position: relative;
  display: block;
  width: 100%;
  // stylelint-disable-next-line primer/spacing
  padding: 12px var(--base-size-16);
  color: var(--fgColor-default, var(--color-fg-default));
  text-align: left;
  background-color: transparent;
  border: 0;
  // stylelint-disable-next-line primer/borders, primer/colors
  border-top: $border-width $border-style var(--borderColor-muted, var(--color-border-muted));

  &:first-child {
    border-top: 0;
  }

  &:last-child {
    // makes sure there is a "bottom border" in case the list is not long enough
    // stylelint-disable-next-line primer/box-shadow, declaration-property-value-no-unknown
    box-shadow: 0 $border-width 0 var(--borderColor-default, var(--color-border-default));
  }

  // Bar on the left
  &::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    width: 2px;
    pointer-events: none;
    content: '';
  }
}

// States

.SideNav-item:hover {
  text-decoration: none;
  background-color: var(--bgColor-neutral-muted, var(--color-neutral-subtle));
}

.SideNav-item:active {
  background-color: var(--bgColor-muted, var(--color-canvas-subtle));
}

.SideNav-item[aria-current]:not([aria-current='false']),
.SideNav-item[aria-selected='true'] {
  background-color: var(--sideNav-bgColor-selected, var(--color-sidenav-selected-bg));

  // Bar on the left
  &::before {
    // stylelint-disable-next-line primer/colors
    background-color: var(--underlineNav-borderColor-active, var(--color-primer-border-active));
  }
}

// Icon
//
// Makes sure multiple icons are vertically aligned

.SideNav-icon {
  width: 16px;
  margin-right: var(--base-size-8);
  color: var(--fgColor-muted, var(--color-fg-muted));
}

// Sub Nav
//
// A more lightweight version, suited as a sub nav

.SideNav-subItem {
  position: relative;
  display: block;
  width: 100%;
  padding: var(--base-size-4) 0;
  color: var(--fgColor-accent, var(--color-accent-fg));
  text-align: left;
  background-color: transparent;
  border: 0;
}

.SideNav-subItem:hover {
  color: var(--fgColor-default, var(--color-fg-default));
  text-decoration: none;
}

.SideNav-subItem[aria-current]:not([aria-current='false']),
.SideNav-subItem[aria-selected='true'] {
  // stylelint-disable-next-line primer/typography
  font-weight: $font-weight-semibold;
  color: var(--fgColor-default, var(--color-fg-default));
}
